package juego;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class Jugador {

	private String nombre;
	private Juego juego;

	public Jugador(String nombre) {
		this.nombre = nombre;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nuevoNombre) {
		this.nombre = nuevoNombre;

	}

	public void setJuego(Juego juego) {
		this.juego = juego;

	}

	public Juego getJuego() {

		return this.juego;
	}

	public Element serializar(org.w3c.dom.Document dom)
			throws ParserConfigurationException {

		Element jugadorSerializado = dom.createElement("Jugador");

		Element nombre = dom.createElement("Nombre");
		nombre.setTextContent(this.nombre);

		jugadorSerializado.appendChild(nombre);
		jugadorSerializado.appendChild(this.juego.serializar(dom));

		return jugadorSerializado;

	}

	public static Jugador deserializar(Node jugador) {
		Juego nuevoJuego = null;
		Jugador nuevoJugador = new Jugador("");
		try {

			for (int i = 0; i < jugador.getChildNodes().getLength(); i++) {
				Node nodo = jugador.getChildNodes().item(i);

				if (nodo.getNodeName() == "Nombre") {
					nuevoJugador.setNombre(nodo.getTextContent());
				} else if (nodo.getNodeName() == "Juego") {
					nuevoJuego = Juego.deserializar(nodo);
				}

			}
			nuevoJugador.setJuego(nuevoJuego);
			nuevoJuego.setJugador(nuevoJugador);
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

		return nuevoJugador;
	}
}
